This invention relates to an equipment for controlling an industrial robot. Furthermore, the invention relates to a method for programming and/or adjusting the movement of a robot.
An industrial robot comprises several arms, which are moveable in relation to each other, and a holder designed for mounting of the tool, object or gripping appliance, which the robot is to handle. The industrial robot is provided with a control system, which controls position and orientation of the tool/object/gripping appliance, and for each of the movement axles of the robot there is a servo system with a driving motor. The servo system of each axle is supplied with a reference value (desired valued) for the rotation angle of the axle and the driving motor of the axle makes the manipulator move in the axle in question until the axle position corresponds with the reference value supplied to the servo system. With an axle is here meant axle transmissions, which can cause rotation as well as translation of the moveable arms of the robot.
The industrial robots of today are programmed either off-line or on-line by so called teach-in. During programming in teach-in the reference values to the servo systems of the axles are generated from a so called interpolator, which interpolates a path for the tool of the robot based on the signals from press-buttons or a control stick located on a particular programming unit. This teach-in technique has the following drawbacks:
it is difficult to know which movement the object carried by the robot obtains at a given button pressing/control stick movement;
it is difficult to control the object movements when the object by touching its surroundings is exposed to forces from different directions. In this direction, there is a very great risk that the control system disengages due to obtainal of too large motor moments;
it is difficult to manipulate objects which are partly concealed by surrounding equipment;
it is difficult to obtain smooth movement patterns, since it is difficult to control 6 degrees of freedom simultaneously by means of a control stick. Therefor, the position of the object is normally programmed separately from the programming of the orientation of the object, which makes it difficult to obtain for instance an effective distribution of the reorientation between programmed positions, at the same time as the switching technique is time-consuming.
The present invention aims at providing a technique which solves the above mentioned problems in teach-in and which at the same time makes the programming much more simple and faster, in particular in applications such as assemblage, disassembly and advanced material handling.
The invention is based on a servo with a high sensitivity to external forces on robot-arms, tool, object and gripping appliance. These forces causes, in the servo systems of the axles, regulation of the motor moments, and by means of a particular functionality in each axle servo a moment control of the reference values to the servo is obtained. This implies that if for instance the operator takes in his hand the object carried by the robot and moves and rotates it, the robot will follow the movements of the object and at the same time support it even though it is very heavy. For the operator, the object will in this way become weightless during the programming.
With this technique, the object will fully follow the intentions of the operator without the operator having to keep a check on relations between for instance control stick directions and the movement direction/rotation axle of the object. When the object is to touch its surroundings, which is always the case during assemblage, the robot can never obtain to high motor moments, since the moment will decrease instead of increase during interaction between object/robot and the surroundings. Furthermore, the operator does not have to see the whole object, on the contrary, by means of interaction between the object and the surroundings, he can get assistance in finding the correct way for the movement of the object.
It should also be pointed out that the programming method can be used during execution of robot programs, whereby the operator can assist the robot in order to adjust its movement.
An apparatus for controlling the reference values to the axle servo of a robot is consequently integrated with the servo system. The method according to the invention utilises this apparatus for an effective robot programming.
The apparatus is constructed so as to give the robot axles alternating to and fro movements with a small amplitude, and in the apparatus the mean value of the motor moment required in this connection is compared with an expected mean value calculated by the apparatus. The difference or the quotient between these mean values forms a control moment, which either gives a position or speed control of the position reference to the axle servo. The expected mean value of the motor moment is calculated by means of a rigid body model for robot/load and/or by extrapolation of calibrated values.
The idea of the method for the robot programming is to move around by means of the hands the robot arms/object carried by the robot and at suitable position/orientations of the object press a button or the similar so as to cause a calibration of the expected mean value. For accurate positioning there is a further button or similar which makes the control system passing on from speed control to position control of the reference values to the axle servos. If the load (the object carried by the robot) is not known, it is possible to press a button or the similar so as to cause the identification of the load parameters. For a complete identification it is required that the operator turns the load between two orientations and in each orientation presses the identification button. This methodology, besides making the manipulation of the objects easier, also makes the programming itself easier than in the robot systems of today. Furthermore, the method of moving around robot arms/object can be used in order to, during program execution, assist the robot in for instance positioning the object correctly when the conditions in the surroundings of the robots are changed.